package com.rec.photoeditor.graphics.commands;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.util.Log;
public class BrightnessCommand implements ImageProcessingCommand {
private static final String ID = "com.rec.photoeditor.graphics.commands.BrightnessCommand";
private int brightness = 0;
public BrightnessCommand() {
}
public BrightnessCommand(int brightness) {
setBrightness(brightness);
}
public Bitmap process(Bitmap bitmap) {
Log.i("Image Processing Command", ID+" : "+brightness);
float b = valueToMatrix(brightness);
ColorMatrix cm = new ColorMatrix();
cm.set(new float[] { 1, 0, 0, 0, b, 0, 1, 0, 0, b, 0, 0, 1, 0, b, 0, 0,
0, 1, 0 });
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColorFilter(new ColorMatrixColorFilter(cm));
Bitmap result = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), bitmap.getConfig());
Canvas canvas = new Canvas(result);
canvas.drawBitmap(bitmap, new Matrix(), paint);
return result;
}
private float valueToMatrix(int val) {
return ((float) val * 2);
}
public int getBrightness() {
return brightness;
}
/**
* Brightness values between -100 and 100
*/
public void setBrightness(int brightness) {
if (brightness < -100) {
brightness = -100;
} else if (brightness > 100) {
brightness = 100;
}
this.brightness = brightness;
}
public String getId() {
return ID;
}
}